Application streaming provides the ability for an endpoint (e.g., a client computer) to run an application locally that is stored remotely, for example on a server. The server transmits specific portions of the application (e.g., code pages) to the endpoint, as the endpoint needs them. Application streaming offers a number of advantages over running the application on the server. Streaming the application allows the application to execute locally on the endpoint, instead of remotely on the server. This eliminates the need for large farms of servers to provide applications to a plurality of client computers. Application response time to the user is also significantly faster when the application is run locally on the endpoint, as opposed to remotely on the server. Commercial application streaming technology exists today.
Because the application content is streamed from a server to a client via a network, application streaming is dependent upon the availability of the server and network. However, servers and networks sometimes require maintenance (e.g., server replacement, network switch over, etc.) which require that they be temporarily taken out of service. When the network or the server need to undergo any temporary disruption, this has the effect of termination or pausing of any corresponding streamed applications on the endpoint. This is clearly not desirable.
It would be desirable to be able to be able to adapt application streaming to proactively manage planned outages of the server or network.